home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Atari Mega Archive 1
/
Atari Mega Archive - Volume 1.iso
/
language
/
gemfst18.lzh
/
GEMFINST.DOC
< prev
next >
Wrap
Text File
|
1992-12-06
|
15KB
|
595 lines
GemFast v1.8
Public Domain GEM Programming Library
By Ian Lepore
Installation and Portability Notes
Contents
Packing List . . . . . . . . . . . . . . . . . . . . . . . . . - 1 -
Installation and Usage Instructions . . . . . . . . . . . . . . - 2 -
Basic installation . . . . . . . . . . . . . . . . . . . . . - 2 -
LD.TTP Installation (for HSC users) . . . . . . . . . . . . - 3 -
Usage . . . . . . . . . . . . . . . . . . . . . . . . . . . - 3 -
IMPORTANT RECOMPILE WARNING! . . . . . . . . . . . . . . . . - 3 -
GemFast System Overview . . . . . . . . . . . . . . . . . . . . - 5 -
The GEMFAST.H header file . . . . . . . . . . . . . . . . . - 5 -
The AESFAST.A library . . . . . . . . . . . . . . . . . . . - 5 -
The VDIFAST.A library . . . . . . . . . . . . . . . . . . . - 5 -
Stack and memory usage . . . . . . . . . . . . . . . . . . . - 6 -
GEM and supervisor mode . . . . . . . . . . . . . . . . . . - 6 -
Portability Notes . . . . . . . . . . . . . . . . . . . . . . . - 7 -
- i -
Packing List
GemFast v1.8 is distributed in 3 archive files, as follows:
GEMFST18.LZH - Libraries, headers, and documentation.
GEMFSC18.LZH - Library source code.
GEMFXM18.LZH - Example application source code.
The GEMFST18.LZH archive contains the following files:
AESFAST.A - The AES library.
VDIFAST.A - The VDI library.
GEMFAST.H - GEM programming header file.
EXTERROR.H - Extended error message header file.
GEMFAST.DOC - The library reference manual.
GEMFINST.DOC - This document.
AESVRSN.DOC - Revision history for AES library.
VDIVRSN.DOC - Revision history for VDI library.
LD.TTP - New linker, required for HSC users.
The GEMFSC18.LZH archive contains two other archives, which in
turn contain many files. (It compresses much tighter this way.)
When unpacked, the following directory structure emerges:
VDIBIND\ - All VDI library functions.
AESBIND\ - Low-level AES bindings.
AESXBIND.S\ - Extended bindings (ASM code).
AESXBIND.C\ - Extended bindings (C code).
AESUTIL.S\ - Low-level utilities (ASM code).
AESUTIL.C\ - Low-level utilities (C code).
AESFUNCS\ - The bulk of the high-level code.
INCLUDE\ - Header files.
The GEMFXM18.LZH archive contains the following files:
(need a list here)
- 1 -
Installation and Usage Instructions
These installation instructions assume you are using GemFast with
a DRI-compatible compiler, and are using GemFast as your primary
GEM bindings system. Compatible compilers are:
Sozobon C v1.x and v2.0
Heat and Serve C (HSC) v1.34 or higher
Laser / MegaMax C
Alcyon C
The distributed libraries are NOT compatible with other
compilers. If your compiler is not on the above list, please
proceed to the Portability Notes chapter.
Basic installation
Installation of GemFast is fairly simple. Copy the VDIFAST.A and
AESFAST.A files to the directory your compiler uses for
libraries. If you use ALN or another indexed linker, be sure to
run DOINDEX to build new library index files. Copy the GEMFAST.H
and EXTERROR.H files to the directory your compiler uses for
header files. Put the documentation wherever you want.
- 2 -
LD.TTP Installation (for HSC users)
If you're using Heat-and-Serve C v1.3x, you need to copy LD.TTP
to replace your current version. Older versions of LD had some
compiled-in limits on the number of object files in a library.
There are now so many modules in the GemFast libraries that these
limits get exceeded. The new LD has larger default limits, and
also some new command line options that let you increase the
limits for any given run. The new command line options are:
-lo#### The number of object files referenced/used.
-lm#### The number of object files skipped/unused.
-ls#### The number of non-local symbols.
The default limits are 300 used object modules, 400 unused
modules from libraries (modules skipped during multipass
processing), and 1000 non-local symbols. To double these limits,
add the following to your LD command line:
-lo600 -lm800 -ls2000
The numbers you specify must be between 1 and 32767 inclusive.
The larger the numbers, the more memory is needed at runtime.
Usage
To link your programs with the GemFast libraries, just include
the library names on the linker command line. Example:
cc myprog.c aesfast.a vdifast.a dlibs.a
There is now a linker order dependancy! Many of the new high-
level functions require VDI services, so you must now place
VDIFAST.A after AESFAST.A on your linker command line. The
libraries are still internally sequenced so that your linker will
only need to make one pass of each library. Also, some of the
new high-level dialogs require runtime library services such as
sprintf(), so it is best if the GemFast libraries appear before
your C runtime library.
You can use any runtime startup module you want, when your
compiler/linker provide several startup modules. Nothing in the
GemFast libraries relies on items in the startup files.
IMPORTANT RECOMPILE WARNING!
You MUST recompile all your existing GEM object modules as a part
of installing v1.8! Because macros in GEMFAST.H remap some
standard GEM calls through new internal library routines, it is
imperative that all your GEM-related object code be recompiled
using the new GEMFAST.H header file before you link *anything*
- 3 -
with the new libraries.
It is hard for me to overstate the importance of this.
Everything will die horribly if you link an existing object
module containing GEM calls with the new libraries.
Here's my suggestion: Go look *everywhere* on all your
partitions or disks. Nuke all object files that have even a
remote chance of containing a GEM call. If you have your own
libraries that contain GEM calls, nuke the libraries. Do all the
deletions at once, then go through and recompile things where
necessary.
- 4 -
GemFast System Overview
GemFast provides complete support for GEM programming. It
provides the GEM support for the Sozobon and HSC public domain
compilers. In addition, it replaces the existing GEM support for
the Laser, MegaMax, and Alcyon compiler